package org.zhadoop.stream.cql.semanticanalyzer.parser.context;

import java.util.List;

import org.zhadoop.stream.cql.DriverContext;
import org.zhadoop.stream.cql.exception.CQLException;
import org.zhadoop.stream.cql.exception.SemanticAnalyzerException;
import org.zhadoop.stream.cql.hooks.SemanticAnalyzeHook;
import org.zhadoop.stream.cql.semanticanalyzer.SemanticAnalyzer;
import org.zhadoop.stream.cql.semanticanalyzer.parsecontextwalker.ParseContextWalker;
import org.zhadoop.stream.cql.tasks.Task;

import com.google.common.base.Joiner;
import com.google.common.collect.Lists;

/**
 * 列名称和列类型列表
 * @author zwd
 *
 */
public class ColumnNameTypeListContext extends ParseContext{

	private List<ColumnNameTypeContext> columns;
	
	public ColumnNameTypeListContext() {
		columns = Lists.newArrayList();
	}
	
	@Override
	public String toString() {
		return "(" + Joiner.on(",").join(columns) + ")";
	}

	public List<ColumnNameTypeContext> getColumns() {
		return columns;
	}

	public void setColumns(List<ColumnNameTypeContext> columns) {
		this.columns = columns;
	}

	@Override
	public Task createTask(DriverContext driverContext, List<SemanticAnalyzeHook> analyzeHooks) throws CQLException {
		return null;
	}

	@Override
	public SemanticAnalyzer createAnalyzer() throws SemanticAnalyzerException {
		return null;
	}

	@Override
	protected void walkChild(ParseContextWalker walker) {
		for(ColumnNameTypeContext colNameType : columns){
			walkExpression(walker, colNameType);
		}
	}
	
}
